#ifndef _MEDIATOR_H_
#define _MEDIATOR_H_

#include <string>

class Colleage;
class ConcreteColleage1;
class ConcreteColleage2;

class Mediator
{
public:
	~Mediator();
	virtual void Send(std::string message, Colleage* colleage) = 0;
protected:
	Mediator();
private:
};

class ConcreteMediator: public Mediator
{
public:
	ConcreteMediator();
	~ConcreteMediator();

	void Send(std::string message, Colleage* colleage);
	void SetConcreteColleage1(ConcreteColleage1* concreteColleage1);
	void SetConcreteColleage2(ConcreteColleage2* concreteColleage2);
protected:
private:
	ConcreteColleage1* _concreteColleage1;
	ConcreteColleage2* _concreteColleage2;
};
#endif